Texture mapping lets a color signal be imaged onto geometry, giving the appearance of detail on coarse triangle meshes. Using textures is generally more efficient than refining the carrier geometry to represent the signal per vertex. While rasterization hardware has supported basic texture mapping for many years, it has recently begun to offer more powerful features. Multitexturing lets several textures contribute to a pixel fragment, and shader expression trees combine these textures using complex operations. In particular, the trend is towards more general programmability.
With this increased rasterization functionality, many surface signals other than color can be used to achieve new rendering effects, including bump mapping (where surface normals are the signal), displacement mapping (geometry), irradiance shading (spherical harmonics), and self-shadowing (horizon maps). These techniques provide further motivation to compress signals defined with vertex attributes into textures parametrized over the mesh.
There are numerous parametrization techniques. For example, Eck et al. propose the discrete harmonic map, which assigns non-uniform springs to the mesh edges. Duchamp et al. investigate multiresolution solution methods for computing harmonic maps. Floater proposes a similar metric with a different edge-spring weighting that guarantees an embedding for convex boundaries. Haker et al. compute conformal maps onto the sphere. Hormann and Greiner propose the MIPS parametrization, which attempts to preserve the ratio of singular values over the parametrization.
Maillot et al. base their metric on mesh edge springs of nonzero rest length, where rest length corresponds to edge length on the surface. Lévy and Mallet use a metric that combines orthogonality and isoparametric terms.
Commonly assigned U.S. patent application Ser. No. 10/138,751 (the '751 application) teaches a parametrization technique that focuses on making textures as small as possible for an unknown surface signal. The geometric-stretch metric taught therein minimizes undersampling by integrating the sum of squared singular values over the map. Intuitively, this measures how distances in the domain get stretched when mapped onto the surface.
Thus, many schemes for flattening a surface chart into 2D minimize some form of a geometric distortion metric. Many of these distortion metrics are tailored for the authoring problem of mapping an existing image onto a surface mesh, rather than the problem of sampling a given surface signal.
In addition to geometric distortion metrics, there has also been some work in exploiting knowledge of the surface signal in optimizing parametrization schemes.
With respect to existing works in the area of signal-specialized chart parametrization, given an existing parametrization, Sloan et al. warp the square texture domain onto itself to more evenly distribute a scalar importance field. Terzopolous and Vasilescu approximate a 2D image using a warped grid of sample values. The warping is achieved using a dynamic simulation where grid edge weights are set according to local image content. Hunter and Cohen compress an image as a set of texture-mapped rectangles, obtained by k-d tree subdivision of the image based on frequency content.
With respect to the use of multi-chart parametrization, to avoid excessive distortion, an arbitrary mesh is generally parametrized using multiple charts. At the limit, distortion can be driven to zero by making each triangle its own chart. However, partitioning the surface into many charts has drawbacks. Such partitioning constrains mesh simplification, requires more inter-chart gutter space, leads to mipmap artifacts, and fails to exploit continuity across charts. Thus, a balance should be made between parametrization distortion and the drawbacks of charts. Several existing approaches, such as Eck et al., Garland et al., Krishnamurthy et al., Maillot et al. and Sander et al., directly partition the original mesh, while other schemes, such as Cignoni et al., Lee et al. and Sander, Gu et al., define the charts using mesh simplification. For an interactive 3D painting system, for example, Igarashi arid Cosgrove construct charts based on the history of drawing operations. The texture resolution on a surface region is selected using the viewing resolution at the time the region was last painted. Commonly assigned copending U.S. patent application Ser. No. 10/138,289 (the '289 application) discloses a technique that provides improved parametrization optimized in accordance with a surface signal metric for efficient and accurate graphics reconstruction, wherein the technique automatically adapts to the content of the signal, and scales the charts based on this content.
Existing parametrization techniques involve tradeoffs, and may be selected for various reasons. For example, the geometric approaches of Sloan et al., Terzopolous and Vasilescu, and Hunter and Cohen do not take any knowledge of the signal on the surface into account, fail to adequately capture information about signal directionality, which allows the parametrization to squash in the direction across the signal gradient and/or restrict the chart boundary to be a square. Some prior art approaches do not provide continuous solutions that adequately adapt to high frequencies along diagonal directions. Some approaches are too computationally intensive, or are impractically applied.
One application for parametrization schemes of all kinds, utilizing all sorts of metrics, some of which are described above, is to create a progressive mesh (PM) representation, which encodes an arbitrary mesh as a simple base mesh M0 and a sequence of n refinement operations called vertex splits. The PM defines an array {M0 . . . Mn} of level-of-detail (LOD) approximations, and supports geomorphs and progressive transmission. Unlike multiresolution frameworks based on subdivision, the meshes in a PM have irregular connectivities that can accurately model sharp features (e.g., creases and corners) at all scales.
One challenge in the PM framework is handling texture maps. Hardware rasterization features, including bump maps, normal maps, and multitexturing, allow fine detail to be captured in texture images parametrized over the mesh. Processes that implicate sources for textures include sampling detailed scanned meshes, evaluating solid textures, ray tracing, and 3D painting. In this regard, there are various problems associated with parametrizing texture images over all meshes in a PM sequence. One particular problem is that sometimes the transition from a coarse mesh to a fine mesh is not smooth. For example, there may be, relatively speaking, very few samples devoted to a portion of high detail in a coarse mesh, which, when transitioning to the corresponding finely detailed mesh having, relatively speaking, a lot of samples devoted to the same portion of high detail in the fine mesh, causes artifacts as the switchover is made from relatively few samples in the coarse mesh to the relatively high number of samples in the fine mesh.
However, present approaches do not take this into account because earlier approaches represent the detail simply by storing signal values at the mesh vertices. The problem with such an approach is that in a coarser, more simplified mesh, there are many fewer vertices, so the detail defined on the fine mesh cannot be accurately represented using just signal values at the vertices. Hormann, Greiner and Campagna provide techniques relating to hierarchical parametrizations of triangulated surfaces. Their techniques solve a sequence of progressively more refined parametrization problems, e.g., a progressive mesh sequence, but their techniques do not gather any information about finer levels when parametrizing the coarser meshes. Accordingly, it would be desirable to provide a technique for use in connection with the generation of a progressive mesh sequence, whereby if there is a lot of detail in a region of the fine surface, additional samples are allocated in parametrizing that same region on the coarser meshes.